package com.probox.common.entity.service.customer;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.probox.common.entity.domain.customer.CustomerGroupDefinition;
import com.probox.common.entity.vo.customer.GroupDefinitionInfoQuery;

/**
 * 客户分群定义信息Service接口
 *
 * @author zsy
 * @date 2021-07-15
 */
public interface ICustomerGroupDefinitionService extends IService<CustomerGroupDefinition> {


        /**
         * 查询客户分群定义信息
         *
         * @param definitionUid 客户分群定义信息ID
         * @return 客户分群定义信息
         */
        public CustomerGroupDefinition selectCustomerGroupDefinitionById(Long definitionUid);


        /**
         * 查询客户分群定义信息列表
         *
         * @param customerGroupDefinition 客户分群定义信息
         * @return 客户分群定义信息集合
         */
        public List<CustomerGroupDefinition> queryList(CustomerGroupDefinition customerGroupDefinition);


        /**
         * 新增客户分群定义信息
         *
         * @param customerGroupDefinition 客户分群定义信息
         * @return 结果
         */
        public boolean insertCustomerGroupDefinition(CustomerGroupDefinition customerGroupDefinition);

        /**
         * 修改客户分群定义信息
         *
         * @param customerGroupDefinition 客户分群定义信息
         * @return 结果
         */
        public boolean updateCustomerGroupDefinition(CustomerGroupDefinition customerGroupDefinition);

        /**
         * 批量删除客户分群定义信息
         *
         * @param definitionUids 需要删除的客户分群定义信息ID
         * @return 结果
         */
        public boolean deleteCustomerGroupDefinitionByIds(Long[] definitionUids);

        /**
         * 根据条件查询特征人群
         */
        public List  selectConditionCustomerInfo(List<GroupDefinitionInfoQuery> groupDefinitionInfoQuerie);

        /**
         * 根据条件查询特征人群(指定平台)
         */
        public List  selectConditionCustomerInfoByPlatformId(List<GroupDefinitionInfoQuery> groupDefinitionInfoQuerie,Long platformId);

        /**
         * 根据条件查询特征人群,指定时间
         */
//        public List  selectConditionCustomerInfoByDate(List<GroupDefinitionInfoQuery> groupDefinitionInfoQuerie,String date);


        /**
         * 查询所有特征信息
         */
        public List<CustomerGroupDefinition> getAllDefinitionInfo();
}
